const app = getApp();
import axios from "../../http/axios.js";
import {
  apiGetOpenid,
  apiGetWorkInfo
} from "../../http/server.js";

Page({
  data: {},
  onLoad: function(options) {
    this.getOpenId();
  },
  onShow() {},
  // 跳转到
  handleClickToUser(e) {
    let type = e.currentTarget.dataset.type;
    // 如果是1跳转到患者页面
    switch (Number(type)) {
      case 1:
        {
          wx.switchTab({ // 患者
            url: "/pages/u_home/u_home"
          })
          break;
        }
      case 2:
        {
          wx.redirectTo({ // 职工
            url: "/pages/n_login/n_login"
          })
          break;
        }
      default:
        break;
    }
  },
  // 判断用户类型
  checkUserType(userType) {
    switch (Number(userType)) {
      case 0: // 0是未知
        {
          break;
        }
      case 1: // 1是患者
        {
          wx.switchTab({
            url: "/pages/u_home/u_home",
          })
          break;
        }
      case 2: // 2是职工
        {
          // 当是职工的时候，根据openId调职工信息
          // 登录过程中后台数据职工表中要保证一个openId只能对应一个职工，如果下一次职工更换只需要把上个openId对应的信息中的openId，添加或者编辑下一条的就好了
          axios({
            url: apiGetWorkInfo,
            data: {
              openid: wx.getStorageSync("userInfo").openid,
            }
          }).then(res => {
            // 只要是职工信息存在就直接进入职工页面
            if (res) {
              wx.setStorageSync("userInfo", res);
              wx.reLaunch({
                url: "/pages/n_index/n_index"
              })
            } else {
              // 不存在就走职工登录页面
              wx.reLaunch({
                url: "/pages/n_login/n_login"
              })
            }
          })
          break;
        }
      default:
        break;
    }
  },
  // 获取openId
  getOpenId: function() {
    // 登录方法
    this.login()
      .then(code => {
        axios({
          url: apiGetOpenid,
          data: {
            code: code
          }
        }).then(res => {
          let {
            userType
          } = res;
          wx.setStorageSync("userInfo", res)
          this.checkUserType(userType);
        })
      })
  },
  // wx登录接口
  login: function() {
    return new Promise((resolve, reject) => {
      // 校验登录状态
      wx.checkSession({
        success: () => {
          // 如果登录成功不需要走微信的登录接口
          app.globalData.userInfo = wx.getStorageSync("userInfo");
          let userInfo = wx.getStorageSync("userInfo");
          // 但是要判断本地缓存用户信息是否还存在
          if (userInfo && String(userInfo.userType) && userInfo.openid) { // 存在的话就根据本地信息跳
            this.checkUserType(userInfo.userType)
          } else { // 不存在的话就要重新跑整个登录注册流程
            wx.login({
              success(res) {
                if (res.code) {
                  resolve(res.code);
                }
              }
            })
          }
        },
        fail() {
          // console.log("108登录失效,重新登录")
          // 如果登录状态失效就直接跑整个登录注册流程
          wx.login({
            success(res) {
              if (res.code) {
                resolve(res.code);
              }
            }
          })
        }
      })
    })
  }
})